A synthesis of dryland restoration techniques.

Purpose

To quantitatively examine the efficacy of vegetation restoration in drylands globally.

Questions

  1. What is the global extent of research that directly examined restoration of drylands?
  2. What were the common measures?
  3. Is the restoration of vegetation a common and primary focus?
  4. How frequently does the restoration measure outcomes beyond the focal species?
  5. What were the primary restoration goals as reported by primary authors?
  6. How much variation was there in the techniques tested and how long were experiments monitored and tested?
  7. How relatively effective were the techniques?

Step 2. Sort

A summary of sort process using PRISMA.

library(PRISMAstatement)
prisma(found = 1504,
       found_other = 5,
       no_dupes = 1039, 
       screened = 1039, 
       screen_exclusions = 861, 
       full_text = 178,
       full_text_exclusions = 100, 
       qualitative = 100, 
       quantitative = 78,
       width = 800, height = 800)

Step 3. Synthesize

Check data and calculate necessary measures.

data <- read_csv("data/data.csv")
data <- data %>%
  mutate(lrr = log(mean.t/mean.c), rii = ((mean.t-mean.c)/(mean.t + mean.c)), var.es = ((sd.t^2/n.t*mean.t^2) + (sd.c^2/n.c*mean.c^2)))
data
## # A tibble: 3,291 x 48
##    study.ID    ID publication.year data.year exp.year `exp.length (mo…
##       <dbl> <dbl>            <dbl>     <dbl>    <dbl>            <dbl>
##  1        1   1.1             2018        NA       NA               NA
##  2        1   1.1             2018        NA       NA               NA
##  3        1   1.1             2018        NA       NA               NA
##  4        1   1.2             2018        NA       NA               NA
##  5        1   1.2             2018        NA       NA               NA
##  6        1   1.2             2018        NA       NA               NA
##  7        1   1.3             2018        NA       NA               NA
##  8        1   1.3             2018        NA       NA               NA
##  9        1   1.3             2018        NA       NA               NA
## 10        1   1.4             2018        NA       NA               NA
## # ... with 3,281 more rows, and 42 more variables: disturbance <chr>,
## #   focus <chr>, technique <chr>, paradigm <chr>, hypothesis <chr>,
## #   pathway <chr>, plant.species <chr>, target.plant <chr>,
## #   measure.success <chr>, measured.factor <chr>, factor.levels <chr>,
## #   treatment <chr>, control <chr>, unit <chr>, Nsites <dbl>, n.t <dbl>,
## #   n.c <dbl>, ntotalsamples <dbl>, mean.t <dbl>, mean.c <dbl>,
## #   sd.t <dbl>, sd.c <dbl>, se.t <dbl>, se.c <dbl>, `p-value` <dbl>,
## #   df <dbl>, measure.dispersion <chr>, lat <dbl>, long <dbl>,
## #   continent <chr>, country <chr>, ecosystem <chr>, `elevation
## #   (m)` <dbl>, `MAP (mm)` <dbl>, aridity.index <dbl>,
## #   `potential.evaporation (mm)` <dbl>, grazing <chr>, soil <chr>,
## #   notes <chr>, lrr <dbl>, rii <dbl>, var.es <dbl>
#consider adding some other effect size measures and/or study-level data too

Step 4. Summarize

Explore summary level data of all data. Explore aggregation levels that support the most reasonable data structure and minimize non-independence issues.

#evidence map####
require(maps)
world<-map_data("world")
map<-ggplot() + geom_polygon(data=world, fill="gray50", aes(x=long, y=lat, group=group))
map + geom_point(data=data, aes(x=long, y=lat)) #render a literal map, i.e. evidence map, of where we study the niche in deserts globally

#aggregation####
data.simple <- data %>%
  group_by(study.ID, paradigm, technique, measure.success) %>%
  summarise(n = n(), mean.lrr = mean(lrr), mean.rii = mean(rii), mean.var = mean(var.es))

ggplot(na.omit(data.simple), aes(technique, n, fill = paradigm)) + 
  geom_bar(stat = "identity") + 
  coord_flip() + 
  scale_fill_brewer(palette = "Paired")

ggplot(na.omit(data.simple), aes(measure.success, n, fill = paradigm)) + 
  geom_bar(stat = "identity") + 
  coord_flip() + 
  scale_fill_brewer(palette = "Paired")

Step 5. Statistics

Meta and conventional statistical models to explore relative efficacy.

library(plotrix) #for quick s.e. calculations sometimes needed for data tidy step
library(meta) #nice package for most meta-statistics

#assign model (typically a nice meta. function from one of several packages such as meta, metafor, or netmeta)
m <- metagen(mean.rii, mean.var, studlab = study.ID, data = data.simple) #fit generic meta-analysis to an object
forest(m)